MapStruct এর প্রয়োজনীয় ডিপেনডেন্সি এবং প্লাগিন যুক্ত করা

MapStruct সেটআপ এবং কনফিগারেশন - ম্যাপস্ট্রাক্ট (MapStruct) - Java Technologies

260

MapStruct একটি Java annotation processor ভিত্তিক মডেল ম্যাপিং টুল যা ডোমেইন অবজেক্ট এবং ডেটা ট্রান্সফার অবজেক্ট (DTO) এর মধ্যে ম্যাপিং সম্পন্ন করে। এটি কোড জেনারেশন প্রযুক্তি ব্যবহার করে এবং compile-time এ কোড জেনারেট করে, যা পারফরম্যান্সে উন্নতি আনে। MapStruct ব্যবহার করার জন্য আপনাকে কিছু ডিপেনডেন্সি এবং প্লাগইন pom.xml (Maven) বা build.gradle (Gradle) ফাইলে যুক্ত করতে হবে।

এই গাইডে, আমরা MapStruct এর প্রয়োজনীয় ডিপেনডেন্সি এবং প্লাগিন কনফিগারেশন দেখব, যা Maven এবং Gradle উভয় প্রোজেক্টেই কার্যকরী হবে।


১. MapStruct ডিপেনডেন্সি যুক্ত করা (Maven)

প্রথমত, আপনাকে MapStruct এবং MapStruct Processor ডিপেনডেন্সি pom.xml ফাইলে যুক্ত করতে হবে। এটি আপনার প্রোজেক্টে MapStruct এর কার্যকারিতা চালু করবে এবং compile-time কোড জেনারেশন সমর্থন করবে।

Maven Dependency:

<dependencies>
    <!-- MapStruct Dependency -->
    <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct</artifactId>
        <version>1.5.2.Final</version>
    </dependency>

    <!-- MapStruct Processor Dependency for compile-time code generation -->
    <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct-processor</artifactId>
        <version>1.5.2.Final</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

Maven Compiler Plugin Configuration:

MapStruct একটি annotation processor ব্যবহার করে কোড জেনারেট করে, তাই maven-compiler-plugin এর কনফিগারেশন pom.xml ফাইলে যুক্ত করতে হবে।

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>1.5.2.Final</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

এখানে, maven-compiler-plugin কনফিগারেশন ব্যবহার করে annotationProcessorPaths-এ MapStruct Processor এর ডিপেনডেন্সি যোগ করা হয়েছে, যা কম্পাইল টাইমে ম্যাপিং কোড জেনারেট করবে।


২. MapStruct ডিপেনডেন্সি যুক্ত করা (Gradle)

যদি আপনি Gradle ব্যবহার করেন, তবে আপনাকে MapStruct এবং MapStruct Processor ডিপেনডেন্সি build.gradle ফাইলে যুক্ত করতে হবে।

Gradle Dependency:

dependencies {
    // MapStruct Dependency
    implementation 'org.mapstruct:mapstruct:1.5.2.Final'

    // MapStruct Processor for compile-time code generation
    annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.2.Final'
}

Gradle Compiler Plugin Configuration:

Gradle এ MapStruct প্রক্রিয়া সমর্থন করতে, আপনাকে annotationProcessor কনফিগারেশন ব্যবহার করতে হবে যাতে MapStruct Processor সঠিকভাবে কাজ করতে পারে।

plugins {
    id 'java'
}

dependencies {
    implementation 'org.mapstruct:mapstruct:1.5.2.Final'
    annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.2.Final'
}

এখানে, annotationProcessor ব্যবহার করে MapStruct Processor ডিপেনডেন্সি যুক্ত করা হয়েছে।


৩. MapStruct এর প্রয়োজনীয় ডিপেনডেন্সি সমূহ

MapStruct ব্যবহারের জন্য সাধারণত নিম্নলিখিত ডিপেনডেন্সিগুলি প্রয়োজন:

  1. mapstruct: এটি মূল MapStruct লাইব্রেরি যা ম্যাপিং ফিচার সরবরাহ করে।
  2. mapstruct-processor: এটি annotation processor যা compile-time কোড জেনারেট করে।
  3. spring (যদি Spring এর সাথে ব্যবহার করতে চান): MapStruct Spring ফ্রেমওয়ার্কের সাথে ইন্টিগ্রেট করতে সহায়তা করে।

৪. Spring Integration with MapStruct

যদি আপনি Spring Framework বা Spring Boot ব্যবহার করেন, তবে MapStruct এর সাথে Spring ইন্টিগ্রেট করার জন্য আপনাকে componentModel = "spring" কনফিগারেশন ব্যবহার করতে হবে।

Spring Integration Example:

@Mapper(componentModel = "spring")
public interface PersonMapper {
    PersonDTO personToPersonDTO(Person person);
}

এখানে, componentModel = "spring" ব্যবহার করে MapStruct কে Spring Bean হিসেবে কনফিগার করা হয়েছে। এর ফলে Spring এটি স্বয়ংক্রিয়ভাবে ইনজেক্ট করবে।


৫. IntelliJ IDEA এবং Eclipse এ MapStruct সেটআপ

IntelliJ IDEA:

  1. Maven Project: IntelliJ IDEA তে Maven প্রোজেক্টে MapStruct ব্যবহার করতে হলে, আপনার pom.xml ফাইলে উপরের ডিপেনডেন্সি যোগ করতে হবে। IntelliJ IDEA স্বয়ংক্রিয়ভাবে MapStruct এর সাথে ইন্টিগ্রেট হয়ে যাবে।
  2. Gradle Project: যদি আপনি Gradle ব্যবহার করেন, তবে build.gradle ফাইলে ডিপেনডেন্সি যোগ করুন।
  3. IntelliJ IDEA তে MapStruct অ্যানোটেশন প্রসেসর চালু থাকতে হবে, যাতে কোড জেনারেট করা হয়।

Eclipse:

  1. Maven Project: Eclipse এ Maven প্রোজেক্টে MapStruct ব্যবহারের জন্য আপনাকে pom.xml ফাইলে ডিপেনডেন্সি যুক্ত করতে হবে। তারপর Maven Build চালিয়ে কোড জেনারেট করা যাবে।
  2. Gradle Project: Eclipse Gradle প্লাগইন ব্যবহার করে Gradle প্রোজেক্টের জন্য উপরের ডিপেনডেন্সি যুক্ত করুন।
  3. Eclipse তে MapStruct অ্যানোটেশন প্রসেসর চালু করা নিশ্চিত করুন।

৬. MapStruct এর পক্ষে কিছু অতিরিক্ত সুবিধা

  1. Compile-time code generation: এতে রানটাইমে পারফরম্যান্সের উপর কোনো প্রভাব পড়ে না, কারণ ম্যাপিং কোড compile-time এ তৈরি হয়।
  2. No Reflection: MapStruct সাধারণভাবে reflection ব্যবহার করে না, যা সাধারণ JavaBeans এবং DTO ম্যাপিং লাইব্রেরির তুলনায় বেশি দ্রুত।
  3. Type Safety: এটি টাইপ সেফটি প্রদান করে, ফলে টাইপ মিসম্যাচের কারণে ত্রুটি কম হয়।
  4. Custom Mappings: MapStruct কাস্টম ম্যাপিং এর সুযোগ প্রদান করে, যেমন কাস্টম কনভার্সন লজিক, এনাম (enum) ম্যাপিং ইত্যাদি।

সারাংশ

MapStruct ব্যবহার করার জন্য Maven বা Gradle প্রোজেক্টে প্রয়োজনীয় ডিপেনডেন্সি এবং প্লাগইন কনফিগারেশন করা হয়। এটি টাইপ সেফ মডেল ম্যাপিং প্রদান করে এবং compile-time এ কোড জেনারেট করে, যা পারফরম্যান্সে ভালো ফলাফল দেয়। Spring এর সাথে ইন্টিগ্রেশন করার জন্য আপনি componentModel = "spring" কনফিগারেশন ব্যবহার করতে পারেন। IntelliJ IDEA এবং Eclipse তে এটি সহজেই ইন্টিগ্রেট করা যায় এবং এর মাধ্যমে আপনাকে ম্যাপিং কোড স্বয়ংক্রিয়ভাবে জেনারেট করতে সহায়তা করে।


Content added By
Promotion

Are you sure to start over?

Loading...